home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Utilities / Winter Shell 1.0d2 / Source / Libraries / pstr / pstr.c next >
Encoding:
C/C++ Source or Header  |  1994-01-09  |  910 b   |  43 lines  |  [TEXT/KAHL]

  1. /* Pascal string utilities, modeled after the standard C library
  2.  
  3.     93/12/06 aih added a few assertions
  4.     93/10/13 aih added pstrcmp */
  5.  
  6. #include <string.h>
  7. #include "pstr.h"
  8.  
  9. int pstrcmp(const unsigned char *a, const unsigned char *b)
  10. {
  11.     char s[256], p[256];
  12.     
  13.     return(strcmp(p2cstrcpy(s, a), p2cstrcpy(p, b)));
  14. }
  15.  
  16. unsigned char *pstrcpy(unsigned char *dst, const unsigned char *src)
  17. {
  18.     register int n;
  19.     
  20.     for (n = *dst = *src; n > 0; n--)
  21.         *++dst = *++src;
  22.     return(dst);
  23. }
  24.  
  25. unsigned char *pstrcat(unsigned char *dst, const unsigned char *src)
  26. {
  27.     require(*dst + *src + 1 <= sizeof(Str255));
  28.     memcpy(dst + *dst + 1, src + 1, *src);
  29.     *dst += *src;
  30.     return(dst);
  31. }
  32.  
  33. unsigned char *c2pstrcpy(unsigned char *ps, const char *cs)
  34. {
  35.     require(strlen(cs) + 1 <= sizeof(Str255));
  36.     return(c2pstr(strcpy((char*)ps, cs)));
  37. }
  38.  
  39. char *p2cstrcpy(char *cs, const unsigned char *ps)
  40. {
  41.     return(p2cstr(memcpy(cs, ps, *ps + 1)));
  42. }
  43.